Overview | Package | Class | Tree | Deprecated | Index | Help Java Platform
1.1.7
PREV CLASS | NEXT CLASS FRAMES  | NO FRAMES
SUMMARY:  INNER | FIELD | CONSTR | METHOD DETAIL:  FIELD | CONSTR | METHOD

Class com.sun.java.swing.text.GapContent

java.lang.Object
  |
  +--com.sun.java.swing.text.GapContent

public final class GapContent
extends java.lang.Object
implements AbstractDocument.Content, java.io.Serializable
An implementation of the AbstractDocument.Content interface implemented using a gapped buffer similar to that used by emacs. The underlying storage is a array of unicode characters with a gap somewhere. The gap is moved to the location of changes to take advantage of common behavior where most changes are in the same location. Changes that occur at a gap boundry are generally cheap and moving the gap is generally cheaper than moving the array contents directly to accomodate the change.

The positions tracking change are also generally cheap to maintain. The Position implementations (marks) store the array index and can easily calculate the sequential position from the current gap location. Changes only require update to the the marks between the old and new gap boundries when the gap is moved, so generally updating the marks is pretty cheap. The marks are stored sorted so they can be located quickly with a binary search. This increases the cost of adding a mark, and decreases the cost of keeping the mark updated.

See Also:
Serialized Form

Constructor Summary
GapContent()
          Creates a new GapContent object.
GapContent(int initialLength)
          Creates a new GapContent object, with the initial size specified.
 
Method Summary
Position createPosition(int offset)
          Creates a position within the content that will track change as the content is mutated.
void getChars(int where, int len, Segment chars)
          Retrieves a portion of the content.
java.lang.String getString(int where, int len)
          Retrieves a portion of the content.
UndoableEdit insertString(int where, java.lang.String str)
          Inserts a string into the content.
int length()
          Returns the length of the content.
UndoableEdit remove(int where, int nitems)
          Removes part of the content.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notifyAll, notify, toString, wait, wait, wait
 

Constructor Detail

GapContent

public GapContent()
Creates a new GapContent object. Initial size defaults to 10.

GapContent

public GapContent(int initialLength)
Creates a new GapContent object, with the initial size specified.
Parameters:
initialLength - the initial size
Method Detail

length

public int length()
Returns the length of the content.
Specified by:
length in interface AbstractDocument.Content
Returns:
the length >= 1
See Also:
length

insertString

public UndoableEdit insertString(int where,
                                 java.lang.String str)
                                                 throws BadLocationException
Inserts a string into the content.
Specified by:
insertString in interface AbstractDocument.Content
Parameters:
where - the starting position >= 0, < length()
str - the non-null string to insert
Returns:
an UndoableEdit object for undoing
Throws:
BadLocationException - if the specified position is invalid
See Also:
insertString

remove

public UndoableEdit remove(int where,
                           int nitems)
                                           throws BadLocationException
Removes part of the content.
Specified by:
remove in interface AbstractDocument.Content
Parameters:
where - the starting position >= 0, where + nitems < length()
nitems - the number of characters to remove >= 0
Returns:
an UndoableEdit object for undoing
Throws:
BadLocationException - if the specified position is invalid
See Also:
remove

getString

public java.lang.String getString(int where,
                        int len)
                          throws BadLocationException
Retrieves a portion of the content.
Specified by:
getString in interface AbstractDocument.Content
Parameters:
where - the starting position >= 0
len - the length to retrieve >= 0
Returns:
a string representing the content
Throws:
BadLocationException - if the specified position is invalid
See Also:
getString

getChars

public void getChars(int where,
                     int len,
                     Segment chars)
             throws BadLocationException
Retrieves a portion of the content. If the desired content spans the gap, we copy the content. If the desired content does not span the gap, the actual store is returned to avoid the copy since it is contiguous.
Specified by:
getChars in interface AbstractDocument.Content
Parameters:
where - the starting position >= 0, where + len <= length()
len - the number of characters to retrieve >= 0
chars - the Segment object to return the characters in
Throws:
BadLocationException - if the specified position is invalid
See Also:
getChars

createPosition

public Position createPosition(int offset)
                                               throws BadLocationException
Creates a position within the content that will track change as the content is mutated.
Specified by:
createPosition in interface AbstractDocument.Content
Parameters:
offset - the offset to track >= 0
Returns:
the position
Throws:
BadLocationException - if the specified position is invalid

Overview | Package | Class | Tree | Deprecated | Index | Help Java Platform
1.1.7
PREV CLASS | NEXT CLASS FRAMES  | NO FRAMES
SUMMARY:  INNER | FIELD | CONSTR | METHOD DETAIL:  FIELD | CONSTR | METHOD

Submit a bug or feature
Submit comments/suggestions about javadoc
Java is a trademark or registered trademark of Sun Microsystems, Inc. in the US and other countries.
Copyright 1993-1998 Sun Microsystems, Inc. 901 San Antonio Road,
Palo Alto, California, 94303, U.S.A. All Rights Reserved.